home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / develop™ Technical Journal / develop Issue 26 code / Truffles-Display Mgr.sit / Truffles - Display Mgr. / Sprocket / Sources / DynamicArray.cp < prev    next >
MacBinary  |  1996-01-02  |  4.1 KB  |  [TEXT/MMCC]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert MS-DOS Code Page Info (other/dosCodePage) ext Unsupported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Tue Jan 2 12:17:30 1996, modified Tue Jan 2 12:17:30 1996, creator 'MMCC', type ASCII, 3430 bytes "DynamicArray.cp" , at 0xde6 607 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MMCC]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0f 44 79 6e 61 6d 69 | 63 41 72 72 61 79 2e 63 |..Dynami|cArray.c|
|00000010| 70 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |p.......|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 4d 43 | 43 01 00 00 00 00 00 00 |.TEXTMMC|C.......|
|00000050| 00 00 00 00 00 0d 66 00 | 00 02 5f ad 0f 19 2a ad |......f.|.._...*.|
|00000060| 0f 19 2a 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |..*.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 3f 50 00 00 |........|....?P..|
|00000080| 2f 2a 0d 09 46 69 6c 65 | 3a 09 09 44 79 6e 61 6d |/*..File|:..Dynam|
|00000090| 69 63 41 72 72 61 79 2e | 63 70 0d 0d 09 43 6f 6e |icArray.|cp...Con|
|000000a0| 74 61 69 6e 73 3a 09 41 | 20 68 61 6e 64 6c 65 2d |tains:.A| handle-|
|000000b0| 62 61 73 65 64 20 64 79 | 6e 61 6d 69 63 20 61 72 |based dy|namic ar|
|000000c0| 72 61 79 20 63 6c 61 73 | 73 0d 09 09 09 09 0d 09 |ray clas|s.......|
|000000d0| 57 72 69 74 74 65 6e 20 | 62 79 3a 20 44 61 76 65 |Written |by: Dave|
|000000e0| 20 46 61 6c 6b 65 6e 62 | 75 72 67 0d 09 0d 09 43 | Falkenb|urg....C|
|000000f0| 6f 70 79 72 69 67 68 74 | 3a 09 a9 20 31 39 39 34 |opyright|:.. 1994|
|00000100| 2d 39 35 20 62 79 20 44 | 61 76 65 20 46 61 6c 6b |-95 by D|ave Falk|
|00000110| 65 6e 62 75 72 67 2c 20 | 61 6c 6c 20 72 69 67 68 |enburg, |all righ|
|00000120| 74 73 20 72 65 73 65 72 | 76 65 64 2e 0d 0d 09 43 |ts reser|ved....C|
|00000130| 68 61 6e 67 65 20 48 69 | 73 74 6f 72 79 20 28 6d |hange Hi|story (m|
|00000140| 6f 73 74 20 72 65 63 65 | 6e 74 20 66 69 72 73 74 |ost rece|nt first|
|00000150| 29 3a 0d 09 20 0d 09 09 | 20 3c 31 3e 09 20 20 31 |):.. ...| <1>. 1|
|00000160| 2f 33 2f 39 35 09 44 52 | 46 09 09 46 69 72 73 74 |/3/95.DR|F..First|
|00000170| 20 63 68 65 63 6b 65 64 | 20 69 6e 2e 0d 20 2a 2f | checked| in.. */|
|00000180| 0d 0d 23 69 6e 63 6c 75 | 64 65 20 22 44 79 6e 61 |..#inclu|de "Dyna|
|00000190| 6d 69 63 41 72 72 61 79 | 2e 68 22 0d 23 69 6e 63 |micArray|.h".#inc|
|000001a0| 6c 75 64 65 20 3c 4d 65 | 6d 6f 72 79 2e 68 3e 0d |lude <Me|mory.h>.|
|000001b0| 0d 54 44 79 6e 61 6d 69 | 63 41 72 72 61 79 3a 3a |.TDynami|cArray::|
|000001c0| 54 44 79 6e 61 6d 69 63 | 41 72 72 61 79 28 29 0d |TDynamic|Array().|
|000001d0| 09 7b 0d 09 66 45 6c 65 | 6d 65 6e 74 43 6f 75 6e |.{..fEle|mentCoun|
|000001e0| 74 20 3d 20 30 3b 0d 09 | 66 53 74 6f 72 61 67 65 |t = 0;..|fStorage|
|000001f0| 20 3d 20 28 41 72 72 61 | 79 45 6c 65 6d 65 6e 74 | = (Arra|yElement|
|00000200| 50 74 72 20 2a 2a 29 20 | 4e 65 77 48 61 6e 64 6c |Ptr **) |NewHandl|
|00000210| 65 28 30 29 3b 0d 09 7d | 0d 09 0d 0d 54 44 79 6e |e(0);..}|....TDyn|
|00000220| 61 6d 69 63 41 72 72 61 | 79 3a 3a 7e 54 44 79 6e |amicArra|y::~TDyn|
|00000230| 61 6d 69 63 41 72 72 61 | 79 28 29 0d 09 7b 0d 09 |amicArra|y()..{..|
|00000240| 44 69 73 70 6f 73 65 48 | 61 6e 64 6c 65 28 28 48 |DisposeH|andle((H|
|00000250| 61 6e 64 6c 65 29 20 66 | 53 74 6f 72 61 67 65 29 |andle) f|Storage)|
|00000260| 3b 0d 09 7d 0d 0d 0d 4f | 53 45 72 72 0d 54 44 79 |;..}...O|SErr.TDy|
|00000270| 6e 61 6d 69 63 41 72 72 | 61 79 3a 3a 49 6e 73 65 |namicArr|ay::Inse|
|00000280| 72 74 46 69 72 73 74 28 | 41 72 72 61 79 45 6c 65 |rtFirst(|ArrayEle|
|00000290| 6d 65 6e 74 20 2a 20 65 | 6c 65 6d 65 6e 74 54 6f |ment * e|lementTo|
|000002a0| 49 6e 73 65 72 74 29 0d | 09 7b 0d 09 72 65 74 75 |Insert).|.{..retu|
|000002b0| 72 6e 20 74 68 69 73 2d | 3e 49 6e 73 65 72 74 28 |rn this-|>Insert(|
|000002c0| 65 6c 65 6d 65 6e 74 54 | 6f 49 6e 73 65 72 74 2c |elementT|oInsert,|
|000002d0| 30 29 3b 0d 09 7d 0d 0d | 0d 4f 53 45 72 72 0d 54 |0);..}..|.OSErr.T|
|000002e0| 44 79 6e 61 6d 69 63 41 | 72 72 61 79 3a 3a 49 6e |DynamicA|rray::In|
|000002f0| 73 65 72 74 4c 61 73 74 | 28 41 72 72 61 79 45 6c |sertLast|(ArrayEl|
|00000300| 65 6d 65 6e 74 20 2a 20 | 65 6c 65 6d 65 6e 74 54 |ement * |elementT|
|00000310| 6f 49 6e 73 65 72 74 29 | 0d 09 7b 0d 09 72 65 74 |oInsert)|..{..ret|
|00000320| 75 72 6e 20 74 68 69 73 | 2d 3e 49 6e 73 65 72 74 |urn this|->Insert|
|00000330| 28 65 6c 65 6d 65 6e 74 | 54 6f 49 6e 73 65 72 74 |(element|ToInsert|
|00000340| 2c 66 45 6c 65 6d 65 6e | 74 43 6f 75 6e 74 29 3b |,fElemen|tCount);|
|00000350| 0d 09 7d 0d 0d 0d 09 0d | 0d 4f 53 45 72 72 0d 54 |..}.....|.OSErr.T|
|00000360| 44 79 6e 61 6d 69 63 41 | 72 72 61 79 3a 3a 49 6e |DynamicA|rray::In|
|00000370| 73 65 72 74 28 41 72 72 | 61 79 45 6c 65 6d 65 6e |sert(Arr|ayElemen|
|00000380| 74 20 2a 20 65 6c 65 6d | 65 6e 74 54 6f 49 6e 73 |t * elem|entToIns|
|00000390| 65 72 74 2c 20 41 72 72 | 61 79 45 6c 65 6d 65 6e |ert, Arr|ayElemen|
|000003a0| 74 49 6e 64 65 78 20 62 | 65 66 6f 72 65 45 6c 65 |tIndex b|eforeEle|
|000003b0| 6d 65 6e 74 29 0d 09 7b | 0d 09 4f 53 45 72 72 09 |ment)..{|..OSErr.|
|000003c0| 65 72 72 3b 0d 09 0d 09 | 2f 2f 09 6d 61 6b 65 20 |err;....|//.make |
|000003d0| 72 6f 6f 6d 20 66 6f 72 | 20 6f 6e 65 20 6d 6f 72 |room for| one mor|
|000003e0| 65 20 41 72 72 61 79 45 | 6c 65 6d 65 6e 74 50 74 |e ArrayE|lementPt|
|000003f0| 72 0d 09 53 65 74 48 61 | 6e 64 6c 65 53 69 7a 65 |r..SetHa|ndleSize|
|00000400| 28 28 48 61 6e 64 6c 65 | 29 20 66 53 74 6f 72 61 |((Handle|) fStora|
|00000410| 67 65 2c 20 66 45 6c 65 | 6d 65 6e 74 43 6f 75 6e |ge, fEle|mentCoun|
|00000420| 74 2a 73 69 7a 65 6f 66 | 28 41 72 72 61 79 45 6c |t*sizeof|(ArrayEl|
|00000430| 65 6d 65 6e 74 50 74 72 | 29 20 2b 20 73 69 7a 65 |ementPtr|) + size|
|00000440| 6f 66 28 41 72 72 61 79 | 45 6c 65 6d 65 6e 74 50 |of(Array|ElementP|
|00000450| 74 72 29 29 3b 0d 09 69 | 66 20 28 28 65 72 72 20 |tr));..i|f ((err |
|00000460| 3d 20 4d 65 6d 45 72 72 | 6f 72 28 29 29 20 21 3d |= MemErr|or()) !=|
|00000470| 20 6e 6f 45 72 72 29 0d | 09 09 72 65 74 75 72 6e | noErr).|..return|
|00000480| 20 65 72 72 3b 0d 09 0d | 09 2f 2f 09 73 6c 69 64 | err;...|.//.slid|
|00000490| 65 20 72 65 6d 61 69 6e | 69 6e 67 20 65 6c 65 6d |e remain|ing elem|
|000004a0| 65 6e 74 73 20 64 6f 77 | 6e 0d 09 0d 09 69 66 20 |ents dow|n....if |
|000004b0| 28 66 45 6c 65 6d 65 6e | 74 43 6f 75 6e 74 29 0d |(fElemen|tCount).|
|000004c0| 09 09 7b 0d 09 09 42 6c | 6f 63 6b 4d 6f 76 65 44 |..{...Bl|ockMoveD|
|000004d0| 61 74 61 28 09 26 28 28 | 2a 66 53 74 6f 72 61 67 |ata(.&((|*fStorag|
|000004e0| 65 29 5b 62 65 66 6f 72 | 65 45 6c 65 6d 65 6e 74 |e)[befor|eElement|
|000004f0| 5d 29 2c 0d 09 09 09 09 | 09 09 26 28 28 2a 66 53 |]),.....|..&((*fS|
|00000500| 74 6f 72 61 67 65 29 5b | 62 65 66 6f 72 65 45 6c |torage)[|beforeEl|
|00000510| 65 6d 65 6e 74 2b 31 5d | 29 2c 0d 09 09 09 09 09 |ement+1]|),......|
|00000520| 09 28 66 45 6c 65 6d 65 | 6e 74 43 6f 75 6e 74 20 |.(fEleme|ntCount |
|00000530| 2d 20 62 65 66 6f 72 65 | 45 6c 65 6d 65 6e 74 29 |- before|Element)|
|00000540| 20 2a 20 73 69 7a 65 6f | 66 28 41 72 72 61 79 45 | * sizeo|f(ArrayE|
|00000550| 6c 65 6d 65 6e 74 50 74 | 72 29 29 3b 0d 09 09 7d |lementPt|r));...}|
|00000560| 0d 09 0d 09 66 45 6c 65 | 6d 65 6e 74 43 6f 75 6e |....fEle|mentCoun|
|00000570| 74 2b 2b 3b 0d 09 28 2a | 66 53 74 6f 72 61 67 65 |t++;..(*|fStorage|
|00000580| 29 5b 62 65 66 6f 72 65 | 45 6c 65 6d 65 6e 74 5d |)[before|Element]|
|00000590| 20 3d 20 65 6c 65 6d 65 | 6e 74 54 6f 49 6e 73 65 | = eleme|ntToInse|
|000005a0| 72 74 3b 0d 0d 09 72 65 | 74 75 72 6e 20 6e 6f 45 |rt;...re|turn noE|
|000005b0| 72 72 3b 0d 09 7d 0d 0d | 0d 0d 4f 53 45 72 72 0d |rr;..}..|..OSErr.|
|000005c0| 54 44 79 6e 61 6d 69 63 | 41 72 72 61 79 3a 3a 44 |TDynamic|Array::D|
|000005d0| 65 6c 65 74 65 28 41 72 | 72 61 79 45 6c 65 6d 65 |elete(Ar|rayEleme|
|000005e0| 6e 74 50 74 72 20 65 6c | 65 6d 65 6e 74 54 6f 44 |ntPtr el|ementToD|
|000005f0| 65 6c 65 74 65 29 0d 09 | 7b 0d 09 41 72 72 61 79 |elete)..|{..Array|
|00000600| 45 6c 65 6d 65 6e 74 49 | 6e 64 65 78 20 69 6e 64 |ElementI|ndex ind|
|00000610| 65 78 3b 0d 09 0d 09 66 | 6f 72 20 28 69 6e 64 65 |ex;....f|or (inde|
|00000620| 78 3d 30 3b 20 69 6e 64 | 65 78 20 3c 20 66 45 6c |x=0; ind|ex < fEl|
|00000630| 65 6d 65 6e 74 43 6f 75 | 6e 74 3b 20 69 6e 64 65 |ementCou|nt; inde|
|00000640| 78 2b 2b 29 0d 09 09 7b | 0d 09 09 69 66 20 28 65 |x++)...{|...if (e|
|00000650| 6c 65 6d 65 6e 74 54 6f | 44 65 6c 65 74 65 20 3d |lementTo|Delete =|
|00000660| 3d 20 28 2a 66 53 74 6f | 72 61 67 65 29 5b 69 6e |= (*fSto|rage)[in|
|00000670| 64 65 78 5d 29 0d 09 09 | 09 72 65 74 75 72 6e 20 |dex])...|.return |
|00000680| 74 68 69 73 2d 3e 44 65 | 6c 65 74 65 45 6c 65 6d |this->De|leteElem|
|00000690| 65 6e 74 47 69 76 65 6e | 49 6e 64 65 78 28 69 6e |entGiven|Index(in|
|000006a0| 64 65 78 29 3b 0d 09 09 | 7d 0d 0d 09 72 65 74 75 |dex);...|}...retu|
|000006b0| 72 6e 20 2d 31 3b 0d 09 | 7d 0d 0d 0d 4f 53 45 72 |rn -1;..|}...OSEr|
|000006c0| 72 0d 54 44 79 6e 61 6d | 69 63 41 72 72 61 79 3a |r.TDynam|icArray:|
|000006d0| 3a 44 65 6c 65 74 65 46 | 69 72 73 74 28 29 0d 09 |:DeleteF|irst()..|
|000006e0| 7b 0d 09 72 65 74 75 72 | 6e 20 74 68 69 73 2d 3e |{..retur|n this->|
|000006f0| 44 65 6c 65 74 65 45 6c | 65 6d 65 6e 74 47 69 76 |DeleteEl|ementGiv|
|00000700| 65 6e 49 6e 64 65 78 28 | 30 29 3b 0d 09 7d 0d 0d |enIndex(|0);..}..|
|00000710| 0d 4f 53 45 72 72 0d 54 | 44 79 6e 61 6d 69 63 41 |.OSErr.T|DynamicA|
|00000720| 72 72 61 79 3a 3a 44 65 | 6c 65 74 65 4c 61 73 74 |rray::De|leteLast|
|00000730| 28 29 0d 09 7b 0d 09 72 | 65 74 75 72 6e 20 74 68 |()..{..r|eturn th|
|00000740| 69 73 2d 3e 44 65 6c 65 | 74 65 45 6c 65 6d 65 6e |is->Dele|teElemen|
|00000750| 74 47 69 76 65 6e 49 6e | 64 65 78 28 66 45 6c 65 |tGivenIn|dex(fEle|
|00000760| 6d 65 6e 74 43 6f 75 6e | 74 2d 31 29 3b 0d 09 7d |mentCoun|t-1);..}|
|00000770| 0d 0d 0d 4f 53 45 72 72 | 0d 54 44 79 6e 61 6d 69 |...OSErr|.TDynami|
|00000780| 63 41 72 72 61 79 3a 3a | 44 65 6c 65 74 65 45 6c |cArray::|DeleteEl|
|00000790| 65 6d 65 6e 74 47 69 76 | 65 6e 49 6e 64 65 78 28 |ementGiv|enIndex(|
|000007a0| 41 72 72 61 79 45 6c 65 | 6d 65 6e 74 49 6e 64 65 |ArrayEle|mentInde|
|000007b0| 78 20 77 68 69 63 68 45 | 6c 65 6d 65 6e 74 29 0d |x whichE|lement).|
|000007c0| 09 7b 0d 09 69 66 20 28 | 77 68 69 63 68 45 6c 65 |.{..if (|whichEle|
|000007d0| 6d 65 6e 74 20 3e 20 66 | 45 6c 65 6d 65 6e 74 43 |ment > f|ElementC|
|000007e0| 6f 75 6e 74 29 0d 09 09 | 72 65 74 75 72 6e 20 2d |ount)...|return -|
|000007f0| 31 3b 0d 09 09 0d 09 2f | 2f 09 43 48 45 43 4b 20 |1;...../|/.CHECK |
|00000800| 54 48 45 20 4d 41 54 48 | 2c 20 44 41 56 45 21 0d |THE MATH|, DAVE!.|
|00000810| 0d 09 69 66 20 28 66 45 | 6c 65 6d 65 6e 74 43 6f |..if (fE|lementCo|
|00000820| 75 6e 74 29 0d 09 09 7b | 0d 09 09 2f 2f 09 73 6c |unt)...{|...//.sl|
|00000830| 69 64 65 20 72 65 6d 61 | 69 6e 69 6e 67 20 65 6c |ide rema|ining el|
|00000840| 65 6d 65 6e 74 73 20 75 | 70 0d 0d 09 09 42 6c 6f |ements u|p....Blo|
|00000850| 63 6b 4d 6f 76 65 44 61 | 74 61 28 09 26 28 28 2a |ckMoveDa|ta(.&((*|
|00000860| 66 53 74 6f 72 61 67 65 | 29 5b 77 68 69 63 68 45 |fStorage|)[whichE|
|00000870| 6c 65 6d 65 6e 74 2b 31 | 5d 29 2c 0d 09 09 09 09 |lement+1|]),.....|
|00000880| 09 09 26 28 28 2a 66 53 | 74 6f 72 61 67 65 29 5b |..&((*fS|torage)[|
|00000890| 77 68 69 63 68 45 6c 65 | 6d 65 6e 74 5d 29 2c 0d |whichEle|ment]),.|
|000008a0| 09 09 09 09 09 09 28 66 | 45 6c 65 6d 65 6e 74 43 |......(f|ElementC|
|000008b0| 6f 75 6e 74 20 2d 20 77 | 68 69 63 68 45 6c 65 6d |ount - w|hichElem|
|000008c0| 65 6e 74 29 20 2a 20 73 | 69 7a 65 6f 66 28 41 72 |ent) * s|izeof(Ar|
|000008d0| 72 61 79 45 6c 65 6d 65 | 6e 74 50 74 72 29 29 3b |rayEleme|ntPtr));|
|000008e0| 0d 0d 09 09 2f 2f 09 63 | 75 74 20 62 61 63 6b 20 |....//.c|ut back |
|000008f0| 74 68 65 20 73 74 6f 72 | 61 67 65 0d 09 09 66 45 |the stor|age...fE|
|00000900| 6c 65 6d 65 6e 74 43 6f | 75 6e 74 2d 2d 3b 0d 09 |lementCo|unt--;..|
|00000910| 09 53 65 74 48 61 6e 64 | 6c 65 53 69 7a 65 28 28 |.SetHand|leSize((|
|00000920| 48 61 6e 64 6c 65 29 20 | 66 53 74 6f 72 61 67 65 |Handle) |fStorage|
|00000930| 2c 66 45 6c 65 6d 65 6e | 74 43 6f 75 6e 74 2a 73 |,fElemen|tCount*s|
|00000940| 69 7a 65 6f 66 28 41 72 | 72 61 79 45 6c 65 6d 65 |izeof(Ar|rayEleme|
|00000950| 6e 74 50 74 72 29 29 3b | 0d 09 0d 09 09 72 65 74 |ntPtr));|.....ret|
|00000960| 75 72 6e 20 6e 6f 45 72 | 72 3b 0d 09 09 7d 0d 09 |urn noEr|r;...}..|
|00000970| 65 6c 73 65 0d 09 09 72 | 65 74 75 72 6e 20 2d 31 |else...r|eturn -1|
|00000980| 3b 0d 09 7d 0d 0d 0d 4f | 53 45 72 72 0d 54 44 79 |;..}...O|SErr.TDy|
|00000990| 6e 61 6d 69 63 41 72 72 | 61 79 3a 3a 4d 6f 76 65 |namicArr|ay::Move|
|000009a0| 54 6f 46 72 6f 6e 74 28 | 41 72 72 61 79 45 6c 65 |ToFront(|ArrayEle|
|000009b0| 6d 65 6e 74 50 74 72 20 | 65 6c 65 6d 65 6e 74 54 |mentPtr |elementT|
|000009c0| 6f 4d 6f 76 65 29 0d 09 | 7b 0d 09 41 72 72 61 79 |oMove)..|{..Array|
|000009d0| 45 6c 65 6d 65 6e 74 49 | 6e 64 65 78 20 69 6e 64 |ElementI|ndex ind|
|000009e0| 65 78 3b 0d 0d 09 66 6f | 72 20 28 69 6e 64 65 78 |ex;...fo|r (index|
|000009f0| 3d 30 3b 20 69 6e 64 65 | 78 20 3c 20 66 45 6c 65 |=0; inde|x < fEle|
|00000a00| 6d 65 6e 74 43 6f 75 6e | 74 3b 20 69 6e 64 65 78 |mentCoun|t; index|
|00000a10| 2b 2b 29 0d 09 09 7b 0d | 09 09 69 66 20 28 65 6c |++)...{.|..if (el|
|00000a20| 65 6d 65 6e 74 54 6f 4d | 6f 76 65 20 3d 3d 20 28 |ementToM|ove == (|
|00000a30| 2a 66 53 74 6f 72 61 67 | 65 29 5b 69 6e 64 65 78 |*fStorag|e)[index|
|00000a40| 5d 29 0d 09 09 09 7b 0d | 09 09 09 69 66 20 28 69 |])....{.|...if (i|
|00000a50| 6e 64 65 78 20 21 3d 20 | 30 29 0d 09 09 09 09 7b |ndex != |0).....{|
|00000a60| 0d 09 09 09 09 42 6c 6f | 63 6b 4d 6f 76 65 28 26 |.....Blo|ckMove(&|
|00000a70| 28 2a 66 53 74 6f 72 61 | 67 65 29 5b 30 5d 2c 26 |(*fStora|ge)[0],&|
|00000a80| 28 2a 66 53 74 6f 72 61 | 67 65 29 5b 31 5d 2c 69 |(*fStora|ge)[1],i|
|00000a90| 6e 64 65 78 2a 73 69 7a | 65 6f 66 28 41 72 72 61 |ndex*siz|eof(Arra|
|00000aa0| 79 45 6c 65 6d 65 6e 74 | 50 74 72 29 29 3b 0d 09 |yElement|Ptr));..|
|00000ab0| 09 09 09 28 2a 66 53 74 | 6f 72 61 67 65 29 5b 30 |...(*fSt|orage)[0|
|00000ac0| 5d 20 3d 20 65 6c 65 6d | 65 6e 74 54 6f 4d 6f 76 |] = elem|entToMov|
|00000ad0| 65 3b 0d 09 09 09 09 7d | 0d 09 09 09 72 65 74 75 |e;.....}|....retu|
|00000ae0| 72 6e 20 30 3b 0d 09 09 | 09 7d 0d 09 09 7d 0d 0d |rn 0;...|.}...}..|
|00000af0| 09 72 65 74 75 72 6e 20 | 2d 31 3b 0d 09 7d 0d 0d |.return |-1;..}..|
|00000b00| 0d 76 6f 69 64 0d 54 44 | 79 6e 61 6d 69 63 41 72 |.void.TD|ynamicAr|
|00000b10| 72 61 79 3a 3a 46 6f 72 | 45 61 63 68 45 6c 65 6d |ray::For|EachElem|
|00000b20| 65 6e 74 28 45 61 63 68 | 41 72 72 61 79 45 6c 65 |ent(Each|ArrayEle|
|00000b30| 6d 65 6e 74 50 72 6f 63 | 20 70 72 6f 63 2c 20 76 |mentProc| proc, v|
|00000b40| 6f 69 64 20 2a 20 70 61 | 72 61 6d 29 0d 09 7b 0d |oid * pa|ram)..{.|
|00000b50| 09 41 72 72 61 79 45 6c | 65 6d 65 6e 74 49 6e 64 |.ArrayEl|ementInd|
|00000b60| 65 78 09 69 6e 64 65 78 | 20 3d 20 30 3b 0d 09 0d |ex.index| = 0;...|
|00000b70| 09 77 68 69 6c 65 20 28 | 69 6e 64 65 78 20 3c 20 |.while (|index < |
|00000b80| 66 45 6c 65 6d 65 6e 74 | 43 6f 75 6e 74 29 0d 09 |fElement|Count)..|
|00000b90| 09 7b 0d 09 09 28 2a 70 | 72 6f 63 29 28 28 2a 66 |.{...(*p|roc)((*f|
|00000ba0| 53 74 6f 72 61 67 65 29 | 5b 69 6e 64 65 78 5d 2c |Storage)|[index],|
|00000bb0| 70 61 72 61 6d 29 3b 0d | 09 09 69 6e 64 65 78 2b |param);.|..index+|
|00000bc0| 2b 3b 0d 09 09 7d 0d 09 | 7d 0d 0d 0d 41 72 72 61 |+;...}..|}...Arra|
|00000bd0| 79 45 6c 65 6d 65 6e 74 | 20 2a 0d 54 44 79 6e 61 |yElement| *.TDyna|
|00000be0| 6d 69 63 41 72 72 61 79 | 3a 3a 46 69 72 73 74 45 |micArray|::FirstE|
|00000bf0| 6c 65 6d 65 6e 74 54 68 | 61 74 28 45 61 63 68 41 |lementTh|at(EachA|
|00000c00| 72 72 61 79 45 6c 65 6d | 65 6e 74 54 65 73 74 50 |rrayElem|entTestP|
|00000c10| 72 6f 63 20 70 72 6f 63 | 2c 20 76 6f 69 64 20 2a |roc proc|, void *|
|00000c20| 20 70 61 72 61 6d 29 0d | 09 7b 0d 09 41 72 72 61 | param).|.{..Arra|
|00000c30| 79 45 6c 65 6d 65 6e 74 | 49 6e 64 65 78 09 69 6e |yElement|Index.in|
|00000c40| 64 65 78 20 3d 20 30 3b | 0d 09 09 0d 09 77 68 69 |dex = 0;|.....whi|
|00000c50| 6c 65 20 28 69 6e 64 65 | 78 20 3c 20 66 45 6c 65 |le (inde|x < fEle|
|00000c60| 6d 65 6e 74 43 6f 75 6e | 74 29 0d 09 09 7b 0d 09 |mentCoun|t)...{..|
|00000c70| 09 69 66 20 28 28 2a 70 | 72 6f 63 29 28 28 2a 66 |.if ((*p|roc)((*f|
|00000c80| 53 74 6f 72 61 67 65 29 | 5b 69 6e 64 65 78 5d 2c |Storage)|[index],|
|00000c90| 70 61 72 61 6d 29 29 0d | 09 09 09 72 65 74 75 72 |param)).|...retur|
|00000ca0| 6e 20 28 2a 66 53 74 6f | 72 61 67 65 29 5b 69 6e |n (*fSto|rage)[in|
|00000cb0| 64 65 78 5d 3b 0d 09 09 | 69 6e 64 65 78 2b 2b 3b |dex];...|index++;|
|00000cc0| 0d 09 09 7d 0d 0d 09 72 | 65 74 75 72 6e 20 4e 55 |...}...r|eturn NU|
|00000cd0| 4c 4c 3b 0d 09 7d 0d 0d | 0d 41 72 72 61 79 45 6c |LL;..}..|.ArrayEl|
|00000ce0| 65 6d 65 6e 74 20 2a 0d | 54 44 79 6e 61 6d 69 63 |ement *.|TDynamic|
|00000cf0| 41 72 72 61 79 3a 3a 4c | 61 73 74 45 6c 65 6d 65 |Array::L|astEleme|
|00000d00| 6e 74 54 68 61 74 28 45 | 61 63 68 41 72 72 61 79 |ntThat(E|achArray|
|00000d10| 45 6c 65 6d 65 6e 74 54 | 65 73 74 50 72 6f 63 20 |ElementT|estProc |
|00000d20| 70 72 6f 63 2c 20 76 6f | 69 64 20 2a 20 70 61 72 |proc, vo|id * par|
|00000d30| 61 6d 29 0d 09 7b 0d 09 | 41 72 72 61 79 45 6c 65 |am)..{..|ArrayEle|
|00000d40| 6d 65 6e 74 49 6e 64 65 | 78 09 69 6e 64 65 78 20 |mentInde|x.index |
|00000d50| 3d 20 66 45 6c 65 6d 65 | 6e 74 43 6f 75 6e 74 2d |= fEleme|ntCount-|
|00000d60| 31 3b 0d 09 0d 09 77 68 | 69 6c 65 20 28 69 6e 64 |1;....wh|ile (ind|
|00000d70| 65 78 20 21 3d 20 2d 31 | 29 0d 09 09 7b 0d 09 09 |ex != -1|)...{...|
|00000d80| 69 66 20 28 28 2a 70 72 | 6f 63 29 28 28 2a 66 53 |if ((*pr|oc)((*fS|
|00000d90| 74 6f 72 61 67 65 29 5b | 69 6e 64 65 78 5d 2c 70 |torage)[|index],p|
|00000da0| 61 72 61 6d 29 29 0d 09 | 09 09 72 65 74 75 72 6e |aram))..|..return|
|00000db0| 20 28 2a 66 53 74 6f 72 | 61 67 65 29 5b 69 6e 64 | (*fStor|age)[ind|
|00000dc0| 65 78 5d 3b 0d 09 09 69 | 6e 64 65 78 2d 2d 3b 0d |ex];...i|ndex--;.|
|00000dd0| 09 09 7d 0d 0d 09 72 65 | 74 75 72 6e 20 4e 55 4c |..}...re|turn NUL|
|00000de0| 4c 3b 0d 09 7d 0d 00 00 | 00 00 00 00 00 00 00 00 |L;..}...|........|
|00000df0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000e00| 00 00 01 00 00 00 01 f9 | 00 00 00 f9 00 00 00 66 |........|.......f|
|00000e10| 06 60 02 a0 2a 4e 75 08 | 01 00 00 67 1a 48 e7 60 |.`..*Nu.|...g.H.`|
|00000e20| 40 55 4f 2f 08 48 6f 00 | 04 3f 3c 00 20 a8 8f 54 |@UO/.Ho.|.?<. ..T|
|00000e30| 0f 44 79 6e 61 6d 69 63 | 41 72 72 61 79 2e 63 70 |.Dynamic|Array.cp|
|00000e40| 02 00 00 00 54 45 58 54 | 4d 4d 43 43 01 00 00 00 |....TEXT|MMCC....|
|00000e50| 00 00 54 45 58 54 4d 4d | 43 43 01 00 00 00 00 00 |..TEXTMM|CC......|
|00000e60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000e70| 00 00 ab 21 84 b3 00 00 | 0d 66 00 00 02 5f 03 67 |...!....|.f..._.g|
|00000e80| 1a 08 01 00 02 66 24 a0 | 69 02 40 00 40 02 41 ff |.....f$.|i.@.@.A.|
|00000e90| bf 82 40 08 c1 00 02 a0 | 4a 60 10 08 81 00 02 08 |..@.....|J`......|
|00000ea0| 01 00 06 67 06 a0 25 d4 | 80 a0 49 58 4f d3 d2 32 |...g..%.|..IXO..2|
|00000eb0| c1 51 ce ff a4 51 cf ff | 9c 20 02 4c df 04 fe 4e |.Q...Q..|. .L...N|
|00000ec0| 75 4e ad 01 4a 21 41 00 | 20 21 40 00 24 24 2c 02 |uN..J!A.| !@.$$,.|
|00000ed0| a6 d1 ac 02 a6 20 02 90 | ac 02 a2 21 40 00 2e a0 |..... ..|...!@...|
|00000ee0| 03 4e 75 48 e7 10 20 45 | ed fb 4c 42 03 4a 2d fc |.NuH.. E|..LB.J-.|
|00000ef0| 05 66 0a 70 01 34 c0 34 | c0 34 c0 60 6e 5d 4f aa |.f.p.4.4|.4.`n]O.|
|00000f00| 00 00 00 1e 00 2a 00 09 | 03 57 02 05 00 50 00 09 |.....*..|.W...P..|
|00000f10| 01 80 02 68 00 00 00 00 | 00 00 00 00 00 00 00 00 |...h....|........|
|00000f20| 00 00 00 00 00 7f f5 3c | 24 0c 3f e5 32 30 00 04 |.......<|$.?.20..|
|00000f30| 00 00 00 01 00 00 00 00 | ab 2e d3 9f ab 2e d3 9e |........|........|
|00000f40| aa 81 1d 14 00 98 85 cc | 00 02 00 0d 00 01 1a 53 |........|.......S|
|00000f50| 70 72 6f 63 6b 65 74 50 | 72 6f 6a ba 53 70 72 6f |procketP|roj.Spro|
|00000f60| 63 6b 65 74 ba 4c 69 62 | ba 00 0f 44 61 76 65 20 |cket.Lib|...Dave |
|00000f70| 46 61 6c 6b 65 6e 62 75 | 72 67 00 01 31 00 0f 44 |Falkenbu|rg..1..D|
|00000f80| 79 6e 61 6d 69 63 41 72 | 72 61 79 2e 63 70 00 00 |ynamicAr|ray.cp..|
|00000f90| 00 00 11 46 69 72 73 74 | 20 63 68 65 63 6b 65 64 |...First| checked|
|00000fa0| 20 69 6e 2e 00 00 00 00 | 48 00 09 4d 6f 6e 61 63 | in.....|H..Monac|
|00000fb0| 6f 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |o.......|........|
|00000fc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 03 00 04 00 |........|........|
|00000fd0| 81 00 10 01 a6 02 6e 00 | 81 00 10 01 a6 02 6e ad |......n.|......n.|
|00000fe0| 0e dc 77 00 00 0a 7f 00 | 00 0a 7f 00 00 09 06 01 |..w.....|........|
|00000ff0| 00 00 00 00 04 00 01 00 | 01 00 00 01 00 00 00 01 |........|........|
|00001000| f9 00 00 00 f9 00 00 00 | 66 00 df 45 8c 10 88 00 |........|f..E....|
|00001010| 00 00 1c 00 66 00 02 4d | 50 53 52 00 01 00 1a 63 |....f..M|PSR....c|
|00001020| 6b 69 64 00 00 00 32 4d | 57 42 42 00 00 00 3e 03 |kid...2M|WBB...>.|
|00001030| f0 ff ff 00 00 00 00 00 | 00 00 00 03 ed ff ff 00 |........|........|
|00001040| 00 00 a5 00 00 00 00 00 | 80 ff ff 00 00 00 22 00 |........|......".|
|00001050| 00 00 00 03 f0 ff ff 00 | 00 00 f1 00 00 00 00 00 |........|........|
|00001060| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001070| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+